0 CLR 10 REM COPYRIGHT 1992 COMPUTE PUBLICATIONS INTL LTD - ALL RIGHTS RESERVED 100 REM *** INITIALIZE *** 110 HD$=" PAD DESIGN ":DEFFNPM(X)=10^(1-(X<1)+(X>1000)) 120 CC$(1)=" ":CC$(2)="[159]RESULTS WITH NEW 'R' VALUES[154]" 130 LO$(1)="INSERTION LOSS":LO$(2)="MINIMUM-LOSS" 140 AN$(1)="T OR H ":AN$(2)="[255] OR O ":AN$(3)="MIN-LOSS" 150 POKE783,PEEK(783)AND254:POKE53281,0:POKE53280,0 160 REM *** MAIN MENU *** 170 PRINT"[147]";:FORI=1TO40:PRINT" ";:NEXT 180 PRINT""TAB(5)HD$ 190 RO=3:CO=5:GOSUB1150:PRINT"SELECT:":CO=10:FORI=1TO3 200 RO=RO+2:GOSUB1150:PRINTI" - "AN$(I):NEXT 210 INPUT"CHOICE:";P$:IFP$<"1"ORP$>"3"THEN210 220 PH=1 230 INPUT"ENTER INPUT IMPEDANCE";ZI:IFZI=0 THENGOSUB1260:GOTO230 240 INPUT"ENTER OUTPUT IMPEDANCE";ZO:IFZO=0THENGOSUB1260:GOTO240 250 IFP$="3"ANDZO=ZITHENPRINT"MIN-LOSS IS TO MATCH Z'S":GOTO1210 260 IFP$="3"THEN300 270 INPUT"ENTER ATTENUATION IN DB.";AT 280 IFAT=0THEN1250 290 N=EXP(LOG(10)*AT/10) 300 ONVAL(P$)GOTO310,440,570 310 REM *** CALC FOR T OR H *** 320 R3=2*SQR(ZI*ZO*N)/(N-1) 330 R1=ZI*(N+1)/(N-1)-R3:R1=INT(FNPM(R1)*R1+.5)/FNPM(R1) 340 R2=ZO*(N+1)/(N-1)-R3:R2=INT(FNPM(R2)*R2+.5)/FNPM(R2) 350 R3=INT(FNPM(R3)*R3+.5)/FNPM(R3) 360 IFSGN(R2)=-1THEN1230 370 RA=R1:RB=R2:RC=R3 380 GOTO690 390 ZA=(ZO+R2)*R3/(ZO+R2+R3)+R1:ZA=INT(FNPM(ZA)*ZA+.5)/FNPM(ZA) 400 ZB=(ZI+R1)*R3/(ZI+R1+R3)+R2:ZB=INT(FNPM(ZB)*ZB+.5)/FNPM(ZB) 410 VL=1/((ZO+R2)*R3/((ZO+R2+R3)*ZA)*ZO/(ZO+R2)) 420 AT=INT(100*(20*LOG(VL)/LOG(10)-10*LOG(ZA/ZO)/LOG(10))+.5)/100 430 GOTO690 440 REM *** CALC FOR ' OR O *** 450 R3=(N-1)/2*SQR(ZI*ZO/N) 460 R1=1/(1/ZI*(N+1)/(N-1)-(1/R3)):R1=INT(FNPM(R1)*R1+.5)/FNPM(R1) 470 R2=1/(1/ZO*(N+1)/(N-1)-(1/R3)):R2=INT(FNPM(R2)*R2+.5)/FNPM(R2) 480 R3=INT(FNPM(R3)*R3+.5)/FNPM(R3) 490 IFSGN(R1)=-1THEN1230 500 RA=R1:RB=R2:RC=R3 510 GOTO870 520 OZ=ZO*R2/(ZO+R2):IZ=ZI*R1/(ZI+R1) 530 ZA=(OZ+R3)*R1/(OZ+R1+R3):ZA=INT(FNPM(ZA)*ZA+.5)/FNPM(ZA) 540 ZB=(IZ+R3)*R2/(IZ+R2+R3):ZB=INT(FNPM(ZB)*ZB+.5)/FNPM(ZB) 550 AT=INT(100*(20*LOG((OZ+R3)/OZ)/LOG(10)-10*LOG(ZA/ZO)/LOG(10))+.5)/100 560 GOTO870 570 REM *** CALC FOR MIN-LOSS *** 580 IFZO>ZITHENZ=ZI:ZI=ZO:ZO=Z 590 R3=ZO/SQR(1-(ZO/ZI)):R3=INT(FNPM(R3)*R3+.5)/FNPM(R3) 600 R1=ZI*SQR(1-(ZO/ZI)):R1=INT(FNPM(R1)*R1+.5)/FNPM(R1) 610 ZA=ZI 620 RA=R1:RB=R2:RC=R3 630 GOTO660 640 ZA=ZO*R3/(ZO+R3)+R1:ZA=INT(FNPM(ZA)*ZA+.5)/FNPM(ZA) 650 ZB=(ZI+R1)*R3/(ZI+R1+R3):ZB=INT(FNPM(ZB)*ZB+.5)/FNPM(ZB) 660 VL=ZA/(ZO*R3/(ZO+R3)) 670 AT=INT(100*(20*LOG(VL)/LOG(10)-10*LOG(ZA/ZO)/LOG(10))+.5)/100 680 GOTO1000 690 REM *** DISPLAY T NETWORK *** 700 PRINT"[147]"HD$" "AN$(1) 710 PRINTTAB(5)CC$(PH) 720 PRINTTAB(49)"[195][195][195][195] [154][146][195][195][178][195][195] [154][146][195][195][195]" 730 PRINTTAB(10)" [194]" 740 PRINTTAB(10)" R1  [154][146] R2" 750 PRINTTAB(10)"  [154][146] R3" 760 PRINTTAB(10)"  [154][146]" 770 PRINTTAB(10)" [164][164][164][154] [194] [164][164][164][154]" 780 PRINTTAB(9)"[195][195][195][195][195][195][195][195][195][177][195][195][195][195][195][195][195][195]" 790 PRINTTAB(10)" [163]^[163][154] [163]^[163][154]" 800 PRINT"^ NOTE: IF BALANCED H THEN R1 & R2" 810 PRINT" ARE HALVED." 820 PRINT"R1="R1TAB(15)"R2="R2TAB(30)"R3="R3 830 RO=5:CO=3:GOSUB1150:IFPH=1THENPRINT"ZI"ZITAB(30)"ZO"ZO:GOTO850 840 PRINT"ZI[159]"ZATAB(30)"[154]ZO"ZO:RO=7:GOSUB1150:PRINT" "ZITAB(30)" [159]"ZB"[154]" 850 RO=11:CO=10:GOSUB1150:PRINTLO$(INT(VAL(P$)/2+.5));AT" DB" 860 GOTO1160 870 REM *** DISPLAY (null) NETWORK *** 880 PRINT"[147]"HD$" "AN$(2) 890 PRINTTAB(5)CC$(PH) 900 PRINTTAB(50)"[195][195][195][195][195][178][195][195] [146][154][195][195][178][195][195][195][195]" 910 PRINTTAB(10)" [194] [194]" 920 PRINTTAB(10)"  [146][154] R3  [146][154]" 930 PRINTTAB(10)"  [146][154] R1  [146][154] R2" 940 PRINTTAB(10)"  [146][154]  [146][154]" 950 PRINTTAB(10)" [194] [164][164][164][154] [194]" 960 PRINTTAB(10)"[195][195][195][195][195][177][195][195][195][195][195][195][195][177][195][195][195][195]" 970 PRINTTAB(10)" [163]^[163][154]" 980 PRINT"^ NOTE: IF BALANCED O THEN R3 IS HALVED" 990 GOTO820 1000 REM *** DISPLAY MIN-LOSS *** 1010 PRINT"[147]"HD$" "AN$(3) 1020 PRINTTAB(5)CC$(PH) 1030 PRINTTAB(49)"[195][195][195][195] [154][146][195][195][178][195][195][195][195][195][195][195][195]" 1040 PRINTTAB(10)" [194]" 1050 PRINTTAB(10)" R1  [154][146]" 1060 PRINTTAB(10)"  [154][146] R3" 1070 PRINTTAB(10)"  [154][146]" 1080 PRINTTAB(10)" [164][164][164][154] [194]" 1090 PRINTTAB(9)"[195][195][195][195][195][195][195][195][195][177][195][195][195][195][195][195][195][195]" 1100 PRINTTAB(10)" [163]^[163][154]" 1110 PRINT"^ NOTE: IF BALANCED THEN R1 IS HALVED." 1120 PRINT"R1="R1TAB(30)"R3="R3 1130 GOTO830 1140 REM *** SUB-RTES *** 1150 POKE781,RO:POKE782,CO:SYS65520:RETURN 1160 RO=22:CO=0:GOSUB1150:PRINT"[159]1-ENTER NEW R VALUES 2-MENU 3-QUIT[154]" 1170 GETA$:IFA$<>"1"ANDA$<>"2"ANDA$<>"3"THEN1170 1180 IFA$="2"THEN160 1190 IFA$="3"THENPRINT"[147]":POKE53281,6:POKE53280,14:END 1200 PRINT"[147]":GOSUB1270:ONVAL(P$)GOTO390,520,640 1210 PRINT"[159]HIT SHIFT TO REDO[154]":WAIT653,1:GOTO160 1220 PRINT"VALUE ENTERED IS > OR < THAN 20% OF":PRINTTAB(10)R:RETURN 1230 PRINT"THE INSERTION LOSS IS < MIN.LOSS -" 1240 PRINT" REDO OR CHOOSE MIN.LOSS":GOTO1210 1250 PRINT" SOME INSERTION LOSS MUST EXIST ":GOTO1210 1260 PRINT" SOME IMPEDANCE MUST EXIST ":RETURN 1270 REM *** GET NEW R VALUES *** 1280 RO=4:CO=5:GOSUB1150:PRINT"[159]RETURN[146] ONLY FOR ORIGINAL R VALUE[154]" 1290 PH=2:R1$="":R2$="":R3$="" 1300 INPUT"ENTER NEW R1 VALUE";R1$:R1=VAL(R1$):IFR1$=""THENR1=RA:GOTO1320 1310 IFABS(VAL(R1$)-RA)>.2*RATHENR=RA:R1$="":GOSUB1220:GOTO1300 1320 IFP$="3"THEN1350 1330 INPUT"ENTER NEW R2 VALUE";R2$:R2=VAL(R2$):IFR2$=""THENR2=RB:GOTO1350 1340 IFABS(VAL(R2$)-RB)>.2*RBTHENR=RB:R2$="":GOSUB1220:GOTO1330 1350 INPUT"ENTER NEW R3 VALUE";R3$:R3=VAL(R3$):IFR3$=""THENR3=RC:GOTO1370 1360 IFABS(VAL(R3$)-RC)>.2*RCTHENR=RC:R3$="":GOSUB1220:GOTO1350 1370 IFR1=RAANDR2=RBANDR3=RCTHENPH=1 1380 RETURN